The Internet is a decentralized network of computers that can communicate with one another via the TCP/IP (transmission control protocol/Internet protocol) network protocol. Although the Internet has its origins in an agency started by the United States Department of Defense in the late 1960's called the U.S. Advanced Research Project Agency (ARPANET), it has only recently become a worldwide communication medium. The explosive growth in use and traffic over the Internet may be due, at least in part, to the development in the early 1990's of the World Wide Web (WWW), which is one of several service facilities provided on top of the Internet. Other facilities include a variety of communication services such as electronic mail (e-mail), telnet, usenet newsgroups, Internet relay chat (IRC), a variety of information search services such as WAIS and Archie, and a variety of information retrieval services such as FTP (file transfer protocol) and Gopher. While these facilities have serviced the research-oriented user well, it is the multimedia capability of the WWW which may have brought the Internet into prominence.
The WWW is a client-server based facility that comprises a number of servers (e.g, computers connected to the Internet) on which web pages or files reside and clients (e.g., web browsers) which interface the users with the web pages. Specifically, web browsers and software applications such as WebExplorer.RTM. (IBM Corporation) or Navigator.RTM. (Netscape Communication Corporation) send a request over the WWW to a server requesting a copy of a web page identified by a uniform resource locator (URL) which denotes both the server where the web page resides and the file or files which comprise the web page. In response, the server sends a copy of the requested file(s) to the web browser which displays the web page to the user.
The web pages on the WWW may be hyper-media documents written in a standardized language called hypertext markup language (HTML). Thus, a typical web page includes text together with embedded formatting commands, referred to a tags, which can be used to control the font size, the font style (for example, whether italic or bold), the layout of the text, or other document attributes. A web browser parses the HTML script in order to display the text in accordance with the specified format. In addition, a web page can also contain a reference, in terms of another URL, to a piece of multimedia data, for example, an image, a video segment, or an audio file. The web browser responds to such a reference by retrieving and displaying or playing the data. This often requires the web browser to launch another software application such as a plug-in or helper program that is particularly configured for displaying or playing the multimedia data as formatted. Alternatively, such multimedia data may form its own web page, without any surrounding HTML text.
Some web pages also contain one or more references to other web pages, which need not be on the same server as the original web page. Such references may generally be activated by the user selecting particular locations on the screen, typically by clicking a primary button of a pointing device such as a mouse. These references or locations are known as hyperlinks, and are typically flagged by the browser in a particular manner (for example, any text associated with a hyperlink may be in a different color or underlined). If the user selects the hyperlink, then the referenced page is retrieved and replaces the currently displayed page. Further information about HTML and the WWW can be found in World Wide Web and HTML by Douglas MacArthur, pp. 18-26 and Dr. Dobbs' Journal, December 1994, and in The HTML Sourcebook by Ian Graham, John Wiley Publishers, New York (1995).
Out of an effort to heighten the sensory experience of the WWW, three dimensional virtual reality languages have begun to be developed. One such language is the virtual reality modeling language (VRML, pronounced "ver-mel"). VRML is a standardized language for describing the animation and three dimensional modeling of geometric objects. VRML allows a three dimensional scene(s) or world(s) to be manipulated in an interactive manner over the Internet or locally. In either case, VRML allows for the creation of virtual environments which may be shared by multiple users. Virtual reality worlds are generally defined with reference to an x-axis, a y-axis, and a z-axis so as to allow movement with six degrees of freedom. Thus, unlike HTML which provides for relaying and formatting text and images, and for hyperlinks to other web pages, VRML provides for the organization and interaction of three dimensional objects and scenes in a hierarchical fashion within a virtual three dimensional space.
A VRML browser is used to view a three dimensional virtual world or virtual environment. The VRML browser may be a helper program or plug-in to a web browser that is launched when the web browser detects that a file being downloaded is a VRML document. The VRML browser provides means for allowing the user to move around or navigate the three dimensional virtual world. Typical navigation controls for a VRML browser include walk, spin, look, slide, and point. Typically, the walk control allows the user to move forward and backward within a world, the spin control allows the user to turn in an arcuate fashion within a world, the look control allows the user to zoom in or pan out from a particular area within a world, the slide control allows the user to move sideways in an arcuate fashion within a world, and the point control allows the user to return to an initial vantage point.
In addition to navigating through a VRML world, a VRML browser (i.e., the client) may share a world with one or more other VRML browsers. In this context, a user of a VRML browser may select a three dimensional representation of him/herself known as an "avatar" which is an object or group of objects. The user then navigates in the world with other avatars that represent other users of VRML browsers in that world (e.g., other clients). Thus, as a user's avatar moves through the world the user is able to see other users' avatars moving as well, and vice versa. The navigation controls utilized in conjunction with an avatar are typically the same as those described above.
The positions of the avatars within a VRML world are tracked by a matrix-based central object server. Thus, as the position or behavior of an avatar changes, the changes are detected by the central object server and rebroadcast out to the client web browsers. Current navigational controls typically allow for movement of the avatar with six degrees of freedom. Particularly, current navigational controls allow the user to traverse the world in the direction of the x, y, or z axis.
However, a problem with current navigation controls associated with avatars is that they are too general in nature. The controls are typically developed to work reasonably well in all worlds. The differences in dimension and perspective from one world to another, however, prevent the navigational controls from allowing precise navigation. One particular situation where this is especially noticeable is when navigating within a tight area. It is often desirable for the user to look in different directions without having to motor or move in any one direction. As mentioned above, current navigation controls typically require the avatar to turn in an arcuate fashion or otherwise move to face a new direction. Another circumstance where precise navigation is desirable is when an avatar is sharing a world with multiple users and an avatar wishes to turn to face another avatar in order to acknowledge the other avatar's presence and return some complimentary greeting or gesture. If the avatar is required to turn in an arcuate fashion, it may move away from the other avatar or otherwise require unwanted movement to face a user.
In light of the above discussion, a need exists for improvements in the navigation of users or objects under a user's control in a virtual environment.